home *** CD-ROM | disk | FTP | other *** search
-
- struct nubus_slot
- {
- int slot_flags;
- #define NUBUS_DEVICE_PRESENT 1
- #define NUBUS_DEVICE_ACTIVE 2
- #define NUBUS_DEVICE_IRQ 4
- __u32 slot_directory;
- __u32 slot_dlength;
- __u32 slot_crc;
- __u8 slot_rev;
- __u8 slot_format;
- __u8 slot_lanes;
- /*
- * Stuff we pulled from the directory
- */
- __u32 slot_dirbase;
- __u32 slot_thisdir;
- char slot_vendor[64];
- char slot_cardname[64];
- };
-
- struct nbnamevec
- {
- char *name;
- int id;
- };
-
- struct nubus_dir
- {
- unsigned char *base;
- int length;
- int count;
- int mask;
- };
-
- struct nubus_dirent
- {
- unsigned char type;
- int value; /* Actually 24bits used */
- int mask;
- int base; /* For dirptr function */
- };
-
- struct nubus_type
- {
- __u16 category;
- __u16 type;
- __u16 DrHW;
- __u16 DrSW;
- };
-
- #define NUBUS_CAT_BOARD 0x0001
- #define NUBUS_CAT_DISPLAY 0x0003
- #define NUBUS_CAT_NETWORK 0x0004
- #define NUBUS_CAT_COMMUNICATIONS 0x0006
- #define NUBUS_CAT_FONT 0x0009
- #define NUBUS_CAT_CPU 0x000A
-
- #define RES_ID_TYPE 0x0001
- #define RES_ID_NAME 0x0002
- #define RES_ID_BOARD_DIR 0x0001
- #define RES_ID_FLAGS 0x0007
-
- struct nubus_device_specifier
- {
- int (*setup)(struct nubus_device_specifier *, int slot, struct nubus_type *);
- struct nubus_device_specifier *next;
- };
-
-
- extern void register_nubus_device(struct nubus_device_specifier *nb);
- extern void unregister_nubus_device(struct nubus_device_specifier *nb);
-
- extern struct nubus_dir *nubus_openrootdir(int slot);
- extern struct nubus_dir *nubus_opensubdir(struct nubus_dirent *d);
- extern void nubus_closedir(struct nubus_dir *);
- extern struct nubus_dirent *nubus_readdir(struct nubus_dir *);
- extern unsigned char *nubus_dirptr(struct nubus_dirent *d);
- extern void nubus_strncpy(int slot, void *to, unsigned char *p, int len);
- extern void nubus_memcpy(int slot, void *to, unsigned char *p, int len);
- extern void nubus_init(void);
- extern void nubus_sweep_video(void);
- extern int nubus_ethernet_addr(int slot, unsigned char *addr);
-
- extern __inline void *nubus_slot_addr(int slot)
- {
- return (void *)(0xF0000000|(slot<<24));
- }
-
- extern int nubus_hwreg_present(volatile void *ptr);
-
- extern void nubus_init_via(void);
- extern int nubus_free_irq(int slot);
- extern int nubus_request_irq(int slot, void *dev_id, void (*handler)(int,void *,struct pt_regs *));
-
-